// 如果没有通过拦截器配置域名的话，可以在这里写上完整的URL(加上域名部分)
// let indexUrl = '/api/index'; api数量多的话，就不写在这里了

// 此处第二个参数vm，就是我们在页面使用的this，你可以通过vm获取vuex等操作，更多内容详见uView对拦截器的介绍部分：
// https://uviewui.com/js/http.html#%E4%BD%95%E8%B0%93%E8%AF%B7%E6%B1%82%E6%8B%A6%E6%88%AA%EF%BC%9F
const install = (Vue, vm) => {
	// 定义api属性
	vm.$u.api = {};
	// 此处使用了传入的params参数，一切自定义即可
	// 首页
	// let index = (params = {}) => vm.$u.get('/api/index', params);
	vm.$u.api.index = (params = {}) => vm.$u.get('/api/index', params);
	
	// 认证相关的
	vm.$u.api.authLogin = params => vm.$u.post('/api/auth/login',params); // 登录
	vm.$u.api.authRegister = params => vm.$u.post('/api/auth/register',params); // 注册
	vm.$u.api.authLogout = () => vm.$u.post('/api/auth/logout'); // 退出
	vm.$u.api.authOssToken = (params) => vm.$u.get('/api/auth/oss/token',params); // 获取OSS token
	
	// 用户相关的
	vm.$u.api.userInfo = () => vm.$u.get('/api/user'); // 用户详情
	vm.$u.api.userInfoUpdate = (params) => vm.$u.put('/api/user',params); // 修改用户信息
	vm.$u.api.userAvatar = (params) => vm.$u.patch('/api/user/avatar',params); // 更新用户头像
	
	// 收藏
	vm.$u.api.collectList = (page=1) => vm.$u.get('/api/collects',{page}) //获取收藏商品
	// 商品相关的
	vm.$u.api.goodsInfo = id => vm.$u.get(`/api/goods/${id}`); // 商品详情
	vm.$u.api.goodsCollect = id => vm.$u.post(`/api/collects/goods/${id}`); // 商品收藏或取消
	vm.$u.api.goodsList = (params={}) => vm.$u.get(`/api/goods`,params); // 商品列表
	
	// 购物车相关的
	vm.$u.api.cartAdd = (params) => vm.$u.post(`/api/carts`,params); // 加入购物车
	vm.$u.api.cartList = () => vm.$u.get(`/api/carts`); // 加入购物车
	vm.$u.api.cartGoods = () => vm.$u.get(`/api/carts?include=goods`);// 购物车列表
	vm.$u.api.cartNum = (id,num) => vm.$u.put(`/api/carts/${id}`,{num}); // 购物车数量改变
	vm.$u.api.cartDelete = id => vm.$u.delete(`/api/carts/${id}`); //移出购物车
	vm.$u.api.cartChecked = (params = {}) => vm.$u.patch(`/api/carts/checked`,params);// 购物车改变选中
	// vm.$u.api.cartsChecked = cart_ids => vm.$u.patch(`/api/carts/checked`,{cart_ids});//将商品选中与否
	
	// 地址相关
	vm.$u.api.addressList = () => vm.$u.get(`/api/address`);// 地址列表
	vm.$u.api.addressAdd = params => vm.$u.post(`/api/address`,params);// 新增地址
	vm.$u.api.addressDetail = id => vm.$u.get(`/api/address/${id}`);// 地址详情
	vm.$u.api.addressUpdate = (id,params) => vm.$u.put(`/api/address/${id}`,params);// 地址更新
	vm.$u.api.addressDefault = id => vm.$u.patch(`/api/address/${id}/default`);// 设置默认地址
	vm.$u.api.addressDelete = id => vm.$u.delete(`/api/address/${id}`);// 删除地址
	
	// 订单相关的
	vm.$u.api.orderList = (params = {}) => vm.$u.get(`/api/orders`,params);// 订单列表
	vm.$u.api.orderInfo = (id,params) => vm.$u.get(`/api/orders/${id}`,params);// 订单详情
	
	// 将各个定义的接口名称，统一放进对象挂载到vm.$u.api(因为vm就是this，也即this.$u.api)下
	// vm.$u.api = {
	// 	index,
	// 	authLogin
	// };
}

export default {
	install
}